package com.susion.rabbit.base.greendao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.susion.rabbit.base.entities.RabbitHttpLogInfo;
import com.susion.rabbit.base.entities.RabbitAppPerformanceInfo;
import com.susion.rabbit.base.entities.RabbitBlockFrameInfo;
import com.susion.rabbit.base.entities.RabbitReportInfo;
import com.susion.rabbit.base.entities.RabbitAppStartSpeedInfo;
import com.susion.rabbit.base.entities.RabbitSlowMethodInfo;
import com.susion.rabbit.base.entities.RabbitExceptionInfo;
import com.susion.rabbit.base.entities.RabbitPageSpeedInfo;
import com.susion.rabbit.base.entities.RabbitMemoryInfo;
import com.susion.rabbit.base.entities.RabbitFPSInfo;
import com.susion.rabbit.base.entities.RabbitIoCallInfo;
import com.susion.rabbit.base.entities.RabbitAnrInfo;

import com.susion.rabbit.base.greendao.RabbitHttpLogInfoDao;
import com.susion.rabbit.base.greendao.RabbitAppPerformanceInfoDao;
import com.susion.rabbit.base.greendao.RabbitBlockFrameInfoDao;
import com.susion.rabbit.base.greendao.RabbitReportInfoDao;
import com.susion.rabbit.base.greendao.RabbitAppStartSpeedInfoDao;
import com.susion.rabbit.base.greendao.RabbitSlowMethodInfoDao;
import com.susion.rabbit.base.greendao.RabbitExceptionInfoDao;
import com.susion.rabbit.base.greendao.RabbitPageSpeedInfoDao;
import com.susion.rabbit.base.greendao.RabbitMemoryInfoDao;
import com.susion.rabbit.base.greendao.RabbitFPSInfoDao;
import com.susion.rabbit.base.greendao.RabbitIoCallInfoDao;
import com.susion.rabbit.base.greendao.RabbitAnrInfoDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig rabbitHttpLogInfoDaoConfig;
    private final DaoConfig rabbitAppPerformanceInfoDaoConfig;
    private final DaoConfig rabbitBlockFrameInfoDaoConfig;
    private final DaoConfig rabbitReportInfoDaoConfig;
    private final DaoConfig rabbitAppStartSpeedInfoDaoConfig;
    private final DaoConfig rabbitSlowMethodInfoDaoConfig;
    private final DaoConfig rabbitExceptionInfoDaoConfig;
    private final DaoConfig rabbitPageSpeedInfoDaoConfig;
    private final DaoConfig rabbitMemoryInfoDaoConfig;
    private final DaoConfig rabbitFPSInfoDaoConfig;
    private final DaoConfig rabbitIoCallInfoDaoConfig;
    private final DaoConfig rabbitAnrInfoDaoConfig;

    private final RabbitHttpLogInfoDao rabbitHttpLogInfoDao;
    private final RabbitAppPerformanceInfoDao rabbitAppPerformanceInfoDao;
    private final RabbitBlockFrameInfoDao rabbitBlockFrameInfoDao;
    private final RabbitReportInfoDao rabbitReportInfoDao;
    private final RabbitAppStartSpeedInfoDao rabbitAppStartSpeedInfoDao;
    private final RabbitSlowMethodInfoDao rabbitSlowMethodInfoDao;
    private final RabbitExceptionInfoDao rabbitExceptionInfoDao;
    private final RabbitPageSpeedInfoDao rabbitPageSpeedInfoDao;
    private final RabbitMemoryInfoDao rabbitMemoryInfoDao;
    private final RabbitFPSInfoDao rabbitFPSInfoDao;
    private final RabbitIoCallInfoDao rabbitIoCallInfoDao;
    private final RabbitAnrInfoDao rabbitAnrInfoDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        rabbitHttpLogInfoDaoConfig = daoConfigMap.get(RabbitHttpLogInfoDao.class).clone();
        rabbitHttpLogInfoDaoConfig.initIdentityScope(type);

        rabbitAppPerformanceInfoDaoConfig = daoConfigMap.get(RabbitAppPerformanceInfoDao.class).clone();
        rabbitAppPerformanceInfoDaoConfig.initIdentityScope(type);

        rabbitBlockFrameInfoDaoConfig = daoConfigMap.get(RabbitBlockFrameInfoDao.class).clone();
        rabbitBlockFrameInfoDaoConfig.initIdentityScope(type);

        rabbitReportInfoDaoConfig = daoConfigMap.get(RabbitReportInfoDao.class).clone();
        rabbitReportInfoDaoConfig.initIdentityScope(type);

        rabbitAppStartSpeedInfoDaoConfig = daoConfigMap.get(RabbitAppStartSpeedInfoDao.class).clone();
        rabbitAppStartSpeedInfoDaoConfig.initIdentityScope(type);

        rabbitSlowMethodInfoDaoConfig = daoConfigMap.get(RabbitSlowMethodInfoDao.class).clone();
        rabbitSlowMethodInfoDaoConfig.initIdentityScope(type);

        rabbitExceptionInfoDaoConfig = daoConfigMap.get(RabbitExceptionInfoDao.class).clone();
        rabbitExceptionInfoDaoConfig.initIdentityScope(type);

        rabbitPageSpeedInfoDaoConfig = daoConfigMap.get(RabbitPageSpeedInfoDao.class).clone();
        rabbitPageSpeedInfoDaoConfig.initIdentityScope(type);

        rabbitMemoryInfoDaoConfig = daoConfigMap.get(RabbitMemoryInfoDao.class).clone();
        rabbitMemoryInfoDaoConfig.initIdentityScope(type);

        rabbitFPSInfoDaoConfig = daoConfigMap.get(RabbitFPSInfoDao.class).clone();
        rabbitFPSInfoDaoConfig.initIdentityScope(type);

        rabbitIoCallInfoDaoConfig = daoConfigMap.get(RabbitIoCallInfoDao.class).clone();
        rabbitIoCallInfoDaoConfig.initIdentityScope(type);

        rabbitAnrInfoDaoConfig = daoConfigMap.get(RabbitAnrInfoDao.class).clone();
        rabbitAnrInfoDaoConfig.initIdentityScope(type);

        rabbitHttpLogInfoDao = new RabbitHttpLogInfoDao(rabbitHttpLogInfoDaoConfig, this);
        rabbitAppPerformanceInfoDao = new RabbitAppPerformanceInfoDao(rabbitAppPerformanceInfoDaoConfig, this);
        rabbitBlockFrameInfoDao = new RabbitBlockFrameInfoDao(rabbitBlockFrameInfoDaoConfig, this);
        rabbitReportInfoDao = new RabbitReportInfoDao(rabbitReportInfoDaoConfig, this);
        rabbitAppStartSpeedInfoDao = new RabbitAppStartSpeedInfoDao(rabbitAppStartSpeedInfoDaoConfig, this);
        rabbitSlowMethodInfoDao = new RabbitSlowMethodInfoDao(rabbitSlowMethodInfoDaoConfig, this);
        rabbitExceptionInfoDao = new RabbitExceptionInfoDao(rabbitExceptionInfoDaoConfig, this);
        rabbitPageSpeedInfoDao = new RabbitPageSpeedInfoDao(rabbitPageSpeedInfoDaoConfig, this);
        rabbitMemoryInfoDao = new RabbitMemoryInfoDao(rabbitMemoryInfoDaoConfig, this);
        rabbitFPSInfoDao = new RabbitFPSInfoDao(rabbitFPSInfoDaoConfig, this);
        rabbitIoCallInfoDao = new RabbitIoCallInfoDao(rabbitIoCallInfoDaoConfig, this);
        rabbitAnrInfoDao = new RabbitAnrInfoDao(rabbitAnrInfoDaoConfig, this);

        registerDao(RabbitHttpLogInfo.class, rabbitHttpLogInfoDao);
        registerDao(RabbitAppPerformanceInfo.class, rabbitAppPerformanceInfoDao);
        registerDao(RabbitBlockFrameInfo.class, rabbitBlockFrameInfoDao);
        registerDao(RabbitReportInfo.class, rabbitReportInfoDao);
        registerDao(RabbitAppStartSpeedInfo.class, rabbitAppStartSpeedInfoDao);
        registerDao(RabbitSlowMethodInfo.class, rabbitSlowMethodInfoDao);
        registerDao(RabbitExceptionInfo.class, rabbitExceptionInfoDao);
        registerDao(RabbitPageSpeedInfo.class, rabbitPageSpeedInfoDao);
        registerDao(RabbitMemoryInfo.class, rabbitMemoryInfoDao);
        registerDao(RabbitFPSInfo.class, rabbitFPSInfoDao);
        registerDao(RabbitIoCallInfo.class, rabbitIoCallInfoDao);
        registerDao(RabbitAnrInfo.class, rabbitAnrInfoDao);
    }
    
    public void clear() {
        rabbitHttpLogInfoDaoConfig.clearIdentityScope();
        rabbitAppPerformanceInfoDaoConfig.clearIdentityScope();
        rabbitBlockFrameInfoDaoConfig.clearIdentityScope();
        rabbitReportInfoDaoConfig.clearIdentityScope();
        rabbitAppStartSpeedInfoDaoConfig.clearIdentityScope();
        rabbitSlowMethodInfoDaoConfig.clearIdentityScope();
        rabbitExceptionInfoDaoConfig.clearIdentityScope();
        rabbitPageSpeedInfoDaoConfig.clearIdentityScope();
        rabbitMemoryInfoDaoConfig.clearIdentityScope();
        rabbitFPSInfoDaoConfig.clearIdentityScope();
        rabbitIoCallInfoDaoConfig.clearIdentityScope();
        rabbitAnrInfoDaoConfig.clearIdentityScope();
    }

    public RabbitHttpLogInfoDao getRabbitHttpLogInfoDao() {
        return rabbitHttpLogInfoDao;
    }

    public RabbitAppPerformanceInfoDao getRabbitAppPerformanceInfoDao() {
        return rabbitAppPerformanceInfoDao;
    }

    public RabbitBlockFrameInfoDao getRabbitBlockFrameInfoDao() {
        return rabbitBlockFrameInfoDao;
    }

    public RabbitReportInfoDao getRabbitReportInfoDao() {
        return rabbitReportInfoDao;
    }

    public RabbitAppStartSpeedInfoDao getRabbitAppStartSpeedInfoDao() {
        return rabbitAppStartSpeedInfoDao;
    }

    public RabbitSlowMethodInfoDao getRabbitSlowMethodInfoDao() {
        return rabbitSlowMethodInfoDao;
    }

    public RabbitExceptionInfoDao getRabbitExceptionInfoDao() {
        return rabbitExceptionInfoDao;
    }

    public RabbitPageSpeedInfoDao getRabbitPageSpeedInfoDao() {
        return rabbitPageSpeedInfoDao;
    }

    public RabbitMemoryInfoDao getRabbitMemoryInfoDao() {
        return rabbitMemoryInfoDao;
    }

    public RabbitFPSInfoDao getRabbitFPSInfoDao() {
        return rabbitFPSInfoDao;
    }

    public RabbitIoCallInfoDao getRabbitIoCallInfoDao() {
        return rabbitIoCallInfoDao;
    }

    public RabbitAnrInfoDao getRabbitAnrInfoDao() {
        return rabbitAnrInfoDao;
    }

}
